import store from '@/store'
// 做一个混入对象 混入 (mixin) 提供了一种非常灵活的方式，来分发 Vue 组件中的可复用功能
// 一个混入对象可以包含任意组件选项。当组件使用混入对象时，
// 所有混入对象的选项将被“混合”进入该组件本身的选项。
// 可以包含任意的组件选项
export default {
   // 混入对象是组件的选项对象
   methods: {
      // 检查权限：要么有，要么没有
      // 每个按钮所对应的 key 不一样
      // key就是要检查的点，传进去的标识
      checkPermission(key) {
         // 去用户的信息里去找 points 中有没有这个标识 key，如果有key就有权限，如果没有，就不能点击
         // store.state.user.userInfo.roles.points
         const { userInfo } = store.state.user
         if (userInfo.roles && userInfo.roles.points) {
            // 找当前用户的标识有没有等于key（也就是传入的标识）
            // 得到布尔值，无论true false，true就是有权限
            return userInfo.roles.points.some(item => item === key)
         }
         // 如果连 if 都进不去，说明没有权限
         return false
      }
   }
}
// 功能权限的受控思路：全局注册一个混入，影响注册之后所有创建的每个 Vue 实例。
//    当我们能看到这个模块，表示你拥有了它的页面的访问权
//    需要对它进行按钮的点击权：
//       看查询数据出来的 points：页面上的功能权限
//       userInfo-- > roles-- > points
//    有了权限就代表我有了这个权限所对应的按钮的点击权
//    这个点来源于：
//       权限管理：最外层是页面的访问权，下边是按钮的操作权

// 当前用户登录的时候，points 有这几个数据时，表示有这几个权限
// 如果没有表示这些按钮看不到或者点不到
// 根据 points 里边有没有那个点来控制某个按钮
// 只有有 points 的这个人才能点击这个按钮
// 让每个组件都拥有一个公共的方法：
//    混入 (mixin) 提供了一种非常灵活的方式，来分发 Vue 组件中的可复用功能。
// 例：
/* <script>
// const obj = {
//    // 可以包含任意的组件选项
//    created() {
//       // 一个混入对象可以包含任意组件选项。当组件使用混入对象时，
//       // 所有混入对象的选项将被“混合”进入该组件本身的选项。
//       console.log(1)
//    }
// }
// const obj1 = {
//    created() {
//       console.log(2)
//    },
//    methods: {
//       test() {
//          console.log('hello')
//       }
//    }
// }
import { mapGetters } from 'vuex'
export default {
   name: 'Dashboard',
   // mixins: [obj, obj1],
   computed: {
      ...mapGetters(['name'])
   }
   // created() {
   //    // console.log(0)
   //    this.test()
   // }
}
</script> */
